/***************************************************
> Copyright (C) 2023 ==lv== All rights reserved.
> File Name: queue.c
> Author: lv
> Mail:joseph2009@163.com 
> Created Time: 2023年12月08日 星期五 14时19分53秒
***************************************************/

#include "queue.h"

Queue *create_queue()
{
	Queue *head = NULL;

	head = (Queue*)malloc(sizeof(Queue));

	if(head == NULL)
	{
		perror("malloc");
		exit(1);
	}
	memset(head,0,sizeof(Queue));

	head->next = NULL;

	return head;
}

//尾插方法
void push(Queue*que,int data)
{
	if(que == NULL)
	{
		return;
	}

	Queue *new = (Queue *)malloc(sizeof(Queue));
	new->data = data;
	new->next = NULL;

	while(que->next!=NULL)
	{
		que = que->next;
	}

	que->next = new;
}


int pop(Queue *que)
{

	int dat = 0;
	if(is_empty(que)!=1)
	{
		return -1;
	}

	//头节点 没有数据
	Queue *temp = NULL;
	temp = que->next;
	//获取节点的第一个数据
	dat = temp->data;

	temp = temp->next;	
	free(que->next);

	que->next = temp;

	return dat;
}

//-1 -- error  0 -- empty  1 -- not empty
int is_empty(Queue *que)
{
	if(que == NULL)
	{
		return -1;
	}

	if(que->next == NULL)
	{
		return 0;
	}
	else
	{
		return 1;
	}
}
